home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS25.ADF / 8ColorWB / ChngIcon.bas (.txt) < prev    next >
AmigaBASIC Source Code  |  1989-01-26  |  2KB  |  61 lines

  1.  
  2. DEFLNG a-z
  3.  
  4. DECLARE FUNCTION PutDiskObject LIBRARY
  5. DECLARE FUNCTION GetDiskObject LIBRARY
  6. CHDIR ":bmaps":LIBRARY "icon.library":CHDIR ":utilities"
  7.  
  8. INPUT "Enter icon to change >",f1$:f1$=f1$+CHR$(0)
  9. obj1=GetDiskObject(SADD(f1$))
  10. IF obj1<>0 THEN
  11.   INPUT "Enter icon to get TYPE data from >",f2$:f2$=f2$+CHR$(0)
  12.   obj2=GetDiskObject(SADD(f2$))
  13.   IF obj2<>0 THEN
  14.     PRINT "Data icon structure is as follows:":GOSUB show
  15.     POKEL obj2+22,PEEKL(obj1+22)           'point to new image
  16.     POKEL obj2+12,PEEKL(obj1+12)           'set to new image size
  17.     stat=PutDiskObject(SADD(f1$),obj2)    'write it out
  18.     PRINT 
  19.     IF stat=0 THEN
  20.       PRINT "ERROR WHILE WRITING ICON!"
  21.     ELSE
  22.       PRINT "Icon is now TYPE OF the above icon."
  23.     END IF
  24.     FreeDiskObject obj2
  25.   ELSE
  26.     PRINT :PRINT "Couldn't get info for data icon!"
  27.   END IF
  28.   FreeDiskObject obj1
  29. ELSE
  30.   PRINT :PRINT "Couldn't get info for image icon!"
  31. END IF
  32.  
  33. LIBRARY CLOSE
  34. END
  35.   
  36.     
  37. 'FOR i=0 TO 83 STEP 4:PRINT i,:FOR j=0 TO 3:PRINT PEEK(i+j+obj);:NEXT:PRINT :NEXT
  38. IF obj=0 THEN BEEP :ELSE GOSUB show
  39. IF obj<>0 THEN FreeDiskObject obj
  40. LIBRARY CLOSE
  41. END
  42.  
  43. show:
  44. PRINT obj
  45. PRINT PEEKW(obj2+0),"magic number"
  46. PRINT PEEKW(obj2+2),"version"
  47. PRINT "gadget structures"
  48. PRINT "  ";PEEKW(obj2+12),"X size"
  49. PRINT "  ";PEEKW(obj2+14),"Y size"
  50. PRINT "  ";PEEKL(obj2+22),"image structptr."
  51. PRINT PEEK(obj2+48),"TYPE OF"
  52. PRINT PEEKL(obj2+52),"default tool"
  53. PRINT PEEKL(obj2+54),"tooltypes"
  54. PRINT PEEKL(obj2+58),"current xpos"
  55. PRINT PEEKL(obj2+62),"current ypos"
  56. PRINT PEEKL(obj2+66),"drawer data"
  57. PRINT PEEKL(obj2+70),"tool window"
  58. PRINT PEEKL(obj2+74),"stack"
  59. RETURN
  60.  
  61.